import 'package:flutter/widgets.dart';

class Attributes {
  final String description;

  /// 基础属性
  ///
  /// 用于标识暴露外部可配置字段
  const Attributes([this.description = '']);
}

class ColorAttributes {
  final String description;

  /// 颜色属性
  ///
  /// 仅支持[Color] 类型字段
  const ColorAttributes(this.description);
}

class IconAttributes {
  final String description;

  /// 图标属性
  ///
  /// 仅支持[IconData] 类型字段
  const IconAttributes(this.description);
}

class ImageAttributes {
  final String description;

  /// 图片资源属性
  ///
  /// 仅支持[String] 类型字段
  const ImageAttributes(this.description);
}

class TransAttributes {
  final String description;

  /// 需要多语言处理的属性
  ///
  /// 仅支持[String] 类型字段
  const TransAttributes(this.description);
}

@required
class AppWidgetAttributes {
  final String description;
  final List<Type>? required;

  /// App小部件属性
  ///
  /// 仅支持对小部件 Class进行描述
  ///
  /// @param [description] 控件描述文字
  /// @param [required] 控件所必要的控制器类型
  const AppWidgetAttributes(this.description, [this.required = null]);
}

class AppPageAttributes {
  final String description;

  /// App页面属性
  ///
  /// 仅支持对Page Class进行描述
  const AppPageAttributes(this.description);
}
